Advances in semi-conductor processing and logic design have permitted an increase in the amount of logic that may be present on integrated circuit devices. As a result, the power demands of integrated circuits, such as microprocessors, have drastically increased. As a remedy, many processors now support multiple power/operating states. As the sleep states are promoted (in a direction of deeper sleep), power savings are increased due to the number of components that are progressively turned off. Yet, the deeper the sleep state, the more time it takes to wake a processing element (more functions/components have to be turned back on).
As another advantage of increase in the amount of logic on integrated circuits, computer system configurations have evolved from a single or multiple integrated circuits in a system to multiple cores, multiple hardware threads, and multiple logical processors present on individual integrated circuits. A processor or integrated circuit typically comprises a single physical processor die, where the processor die may include any number of cores, hardware threads, or logical processors. The ever increasing number of processing elements—cores, hardware threads, and logical processors—on integrated circuits enables more tasks to be accomplished in parallel. This evolution from single threaded processors to more parallel, multi-threaded execution has aided execution of multiple applications at once, as well as threaded execution of single programs (serial programs that are parallelized).
Yet, one of the significant contributions to the overhead of spawning a new thread of execution includes the wake-up time of a processing element (hardware thread or core). And as deeper sleep states are encountered, as described above, the overhead of thread switches/spawns (wake-up contribution) also increases. Therefore, currently processing elements are either not put into deeper sleep states to reduce thread spawn times or thread switches are performed incurring the increased wake times. Unfortunately, the current tradeoff results in reduced power savings or in reduced performance.